---
title: 存储过程
---
视图对 SQL 查询进行封装，可以让 SQL 的代码结构更清晰，让用户权限管理更安全。

存储过程和视图一样，都是对 SQL 代码进行封装，可以反复利用。视图是虚拟表，通常不对底层的数据表直接操作，

而存储过程是程序化的 SQL，可以直接操作底层数据表。存储过程可以说是由 SQL 语句和流程控制语句构成的语句集合，它和函数一样，可以接受输入参数，也可以返回输出参数。

## 什么是存储过程
Stored Procedure 就是 SQL 语句的封装，一旦存储过程创建出来，就可以像使用函数一样使用它，而不用再写一遍 SQL 语句。

存储过程实际上由 SQL 语句和流程控制语句共同组成。

## 如何创建存储过程
```sql
CREATE PROCEDURE 存储过程名([参数列表])
BEGIN
    存储过程体，即需要执行的语句
END
```
在这里，参数列表是可选的，如果存储过程不需要参数，那么参数列表可以省略。可以包括输入参数和输出参数。

和视图一样，可以删除已经创建的存储过程，使用 DROP PROCEDURE 语句即可。如果需要更新存储过程，可以使用 ALTER PROCEDURE 语句。



